<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
<meta name="viewport"
      content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">

    <meta name="author" content="Vico">





<title>9个技巧让你的 if else看起来更牛逼！ | Vico的个人博客</title>



    <link rel="icon" href="/favicon.ico">




    <!-- stylesheets list from _config.yml -->
    
    <link rel="stylesheet" href="/css/style.css">
    



    <!-- scripts list from _config.yml -->
    
    <script src="/js/script.js"></script>
    
    <script src="/js/tocbot.min.js"></script>
    



    
    
        
    


<meta name="generator" content="Hexo 4.2.0"></head>
<body>
    <div class="wrapper">
        <header>
    <nav class="navbar">
        <div class="container">
            <div class="navbar-header header-logo"><a href="/">首页</a></div>
            <div class="menu navbar-right">
                
                    <a class="menu-item" href="/archives">时间轴</a>
                
                    <a class="menu-item" href="/category">分类</a>
                
                    <a class="menu-item" href="/tag">标签</a>
                
                    <a class="menu-item" href="/about">关于</a>
                
                <input id="switch_default" type="checkbox" class="switch_default">
                <label for="switch_default" class="toggleBtn"></label>
            </div>
        </div>
    </nav>

    
    <nav class="navbar-mobile" id="nav-mobile">
        <div class="container">
            <div class="navbar-header">
                <div>
                    <a href="/">首页</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
                </div>
                <div class="menu-toggle" onclick="mobileBtn()">&#9776; Menu</div>
            </div>
            <div class="menu" id="mobile-menu">
                
                    <a class="menu-item" href="/archives">时间轴</a>
                
                    <a class="menu-item" href="/category">分类</a>
                
                    <a class="menu-item" href="/tag">标签</a>
                
                    <a class="menu-item" href="/about">关于</a>
                
            </div>
        </div>
    </nav>

</header>
<script>
    var mobileBtn = function f() {
        var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
        var mobileMenu = document.getElementById("mobile-menu");
        if(toggleMenu.classList.contains("active")){
           toggleMenu.classList.remove("active")
            mobileMenu.classList.remove("active")
        }else{
            toggleMenu.classList.add("active")
            mobileMenu.classList.add("active")
        }
    }
</script>
        <div class="main">
            <div class="container">
    
    
        <div class="post-toc">
    <div class="tocbot-list">
    </div>
    <div class="tocbot-list-menu">
        <a class="tocbot-toc-expand" onclick="expand_toc()">展开全部</a>
        <a onclick="go_top()">回到顶部</a>
        <a onclick="go_bottom()">去底部</a>
    </div>
</div>

<script>
    document.ready(
        function () {
            tocbot.init({
                tocSelector: '.tocbot-list',
                contentSelector: '.post-content',
                headingSelector: 'h1, h2, h3, h4, h5',
                collapseDepth: 1,
                orderedList: false,
                scrollSmooth: true,
            })
        }
    )

    function expand_toc() {
        var b = document.querySelector(".tocbot-toc-expand");
        tocbot.init({
            tocSelector: '.tocbot-list',
            contentSelector: '.post-content',
            headingSelector: 'h1, h2, h3, h4, h5',
            collapseDepth: 6,
            orderedList: false,
            scrollSmooth: true,
        });
        b.setAttribute("onclick", "collapse_toc()");
        b.innerHTML = "全部收缩"
    }

    function collapse_toc() {
        var b = document.querySelector(".tocbot-toc-expand");
        tocbot.init({
            tocSelector: '.tocbot-list',
            contentSelector: '.post-content',
            headingSelector: 'h1, h2, h3, h4, h5',
            collapseDepth: 1,
            orderedList: false,
            scrollSmooth: true,
        });
        b.setAttribute("onclick", "expand_toc()");
        b.innerHTML = "展开全部"
    }

    function go_top() {
        window.scrollTo(0, 0);
    }

    function go_bottom() {
        window.scrollTo(0, document.body.scrollHeight);
    }

</script>
    

    
    <article class="post-wrap">
        <header class="post-header">
            <h1 class="post-title">9个技巧让你的 if else看起来更牛逼！</h1>
            
                <div class="post-meta">
                    
                        作者: <a itemprop="author" rel="author" href="/">Vico</a>
                    

                    
                        <span class="post-time">
                        日期: <a href="#">April 8, 2020&nbsp;&nbsp;20:52:12</a>
                        </span>
                    
                    
                        <span class="post-category">
                    分类:
                            
                                <a href="/categories/%E6%89%8B%E8%AE%B0/">手记</a>
                            
                        </span>
                    
                </div>
            
        </header>

        <div class="post-content">
            <p>if else 是我们写代码时，使用频率最高的关键词之一，然而有时过多的 if else 会让我们感到脑壳疼，例如下面这个伪代码：</p>
<p><img src="%0AAAABAAAAGgAAAAAAAqACAAQAAAABAAABaKADAAQAAAABAAABRQAAAAD/4gI0%0ASUNDX1BST0ZJTEUAAQEAAAIkYXBwbAQAAABtbnRyUkdCIFhZWiAH4QAHAAcA%0ADQAWACBhY3NwQVBQTAAAAABBUFBMAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAA%0AAADTLWFwcGzKGpWCJX8QTTiZE9XR6hWCAAAAAAAAAAAAAAAAAAAAAAAAAAAA%0AAAAAAAAAAAAAAApkZXNjAAAA/AAAAGVjcHJ0AAABZAAAACN3dHB0AAABiAAA%0AABRyWFlaAAABnAAAABRnWFlaAAABsAAAABRiWFlaAAABxAAAABRyVFJDAAAB%0A2AAAACBjaGFkAAAB+AAAACxiVFJDAAAB2AAAACBnVFJDAAAB2AAAACBkZXNj%0AAAAAAAAAAAtEaXNwbGF5IFAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%0AAAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIwMTcA%0AAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAIPfAAA9v////7tYWVog%0AAAAAAAAASr8AALE3AAAKuVhZWiAAAAAAAAAoOAAAEQsAAMi5cGFyYQAAAAAA%0AAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltzZjMyAAAAAAABDEIAAAXe///zJgAA%0AB5MAAP2Q///7ov///aMAAAPcAADAbv/AABEIAUUBaAMBIgACEQEDEQH/xAAf%0AAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUE%0ABAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoW%0AFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2%0Ad3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbH%0AyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEB%0AAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQID%0AEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYn%0AKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SF%0AhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV%0A1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2wBDAAICAgICAgMCAgMFAwMDBQYF%0ABQUFBggGBgYGBggKCAgICAgICgoKCgoKCgoMDAwMDAwODg4ODg8PDw8PDw8P%0ADw//2wBDAQICAgQEBAcEBAcQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ%0AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/3QAEABf/2gAMAwEAAhEDEQA/%0AAPyzlll81/nb7x7+9R+bL/fb86Jv9a/+8f51HQBJ5sv99vzo82X++351HRQB%0AJ5sv99vzo82X++351HRQBJ5sv99vzo82X++351HRQBJ5sv8Afb86PNl/vt+d%0AR0UASebL/fb86PNl/vt+dR0UASebL/fb86PNl/vt+dR0UAdl4c8NS+INM1a/%0AXUBDJpkfmCAKZJZV2szOFDAhE24ZgG25BIC5I3r74a6tbX1xZ2utafdLa21r%0AcPJ9oaJM3ib44gXUfO3boCMEkZxXGaTq+v6daX1vpFxJFBNGTcBAPuYMZOSC%0AV4cqSuDgkdDUmqap4lms4rTV5Zvs88EKosi7fMhhz5XOAWC5IUnPHA4xT547%0AdQ5Jb9Dp4Ph9q9+1oml6jbTm5sYLzc8pjQtcTPAkKEglnLpt5CjPsM1h6/4W%0A1zw3Z2V5qUsW2+yFSOXe8bCKKbbIMDa3lzI3BPXrkGussZfHWqRWT32pS2SR%0AW8Mln8iAmCOUvEwC4IUSAspPU5IznNbGv6P4i1rSdG0fVr0C20uJvsxMT7nW%0AQKpdmd2LcRqoxhQFwAKxli6K0uNU59TndL+Guu3x0h7zUrTT4NatprqCWWRy%0AoWGMylW2oQGKjoCcc7sEYrm9T8NanpWjWmuzXttLBe7TGkU+6bY5cJIUIB2M%0AY2wfpkDIrvYtO8TwR6fDBrzxppbFrYLGoCMy7CePvEr8p3Z+XjpxWReeD77U%0AGie81MymFPLjzHwqbi21QDwMsTj3qXjaPcfs5HHz6FrFvoUHiOR0+xXL+WmJ%0A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%0Af/APznxKzelg5xqaN+/FJb+9Ffhdtnd2nxP+IFpaxxQ67dbIcKilyQBj0qDx%0Af8RPGXj7SrHR/E2pSXkWmyNJb7iBsZxhsHHGcD24rix/qW/3h/I1HX6hLB0r%0AqXKr+h/NazGvZxc212u7H3l+wDYxQeLPF2ttc2y+I47SC102O52CQCWTM06I%0A+NwRVHAOT0HBrB/aE+JXw/8AiNB4ol1YPP4+stRiit702/lJNp9uohKKVJGA%0AQWycZ6jiuW/Zi+KHhrwP4uuND8V6U9/pfim2t7OWRHSMRSwSiSPfI5XZGTkP%0AyOMHpXsP7Tdn4DvdDfx/dPbz6reobGBbF43ghlYb1iDocSLAigFl43N7Yr4+%0ArTcMyvJPW1vl+nc+wocs8vk4tXSd7/1ufnsvRvoaZT16N9DTK+4PgyaD/Wfg%0A38jUI6VNB/rPwb+RqEdKRT2JIv8AWL9RTD1p8X+sX6imHrQSKv3l+opZP9Y3%0A1P8AOkX7y/UUsn+sb6n+dV0AZTmILEim1s615Hm2vl4837PF5u3bt34/2e+M%0AZ96uNO8HLtYTetjGr2XQPiXpNi2gQappRuYNKiliuDK4l+0ReTiOAAIjCMSq%0ArgMzlOikL8teNUVEZNbA1c9qsfjNqVpb+HneCaS+0W7NzJMLkxCVX8wyIqog%0A27zISWbceMdOKsaR8aJ9GsdMsraxlk/sy4lmEklwGkl8xpmDO/l7vN/fEO4O%0AGAGR6eG0VSqy7k+zR6HqnjXTtV8SyeLJ9McX8t1HMx8/K+WkIjK4KffLjzA5%0A78YPWorzxv8AaYZfLtXS5dxtlMxJEYMR5O0MZD5IBfI6njNcDRTVaSVkzWMm%0AlZHcr4o0668TN4i1K3uJZ2v7a6R3n8wxRRyb5UK7RvyMBORtA75rpfEfxYv9%0AStLvTdHFxaQXTqJZZrjzpriARvGUmJQBiQ/GR8oCgcgGvIaKTqy1Ikru7PYr%0A74qo8l2dNs7mJdQt4ILnz7vzXmEFnPaKXYRpuz5qyEHPzIPUYzdS+Iw1u6mu%0ANbgurv7Zo6aVPuuyxBjEWJYS6NsBMKsyENkluRxjy+ik6jEoI9S1f4jnxDJ5%0Aeq28ggNvc2uVk3vHFMINipuAG1Ghztzgh2xg9eL0rxDf6dcRyO32iJFWPZJl%0AgsYdGIUZGD8gx9KwaKKtRzioy6ExpRTbXU7eLxen9oyajdW3nKA0aW4+SJ42%0A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%0ArVeiitErKyLbu7hRRRTEFFFFABRRRQAUUUUAFFFFABRRRQBJD/rU/wB4fzrc%0ArDh/1qf7w/nW5QB//9P8vpbHMjnf3Pb/AOvTPsP+3+n/ANetOT/WN9TTKAM/%0A7D/t/p/9ej7D/t/p/wDXrQooAz/sP+3+n/16PsP+3+n/ANetCigDP+w/7f6f%0A/Xo+w/7f6f8A160KKAM/7D/t/p/9ej7D/t/p/wDXrQooAz/sP+3+n/16PsP+%0A3+n/ANetCigDP+w/7f6f/Xo+w/7f6f8A160KKAM/7B/t/p/9ej7D/t/p/wDX%0ArQooAz/sP+3+n/16PsP+3+n/ANetCigDP+w/7f6f/Xo+w/7f6f8A160KKAM/%0A7D/t/p/9ej7D/t/p/wDXrQooAz/sP+3+n/16PsP+3+n/ANetCigDP+w/7f6f%0A/Xo+w/7f6f8A160KKAM/7D/t/p/9ej7D/t/p/wDXrQooAz/sP+3+n/16PsP+%0A3+n/ANetCigDP+w/7f6f/Xo+w/7f6f8A160KKAM/7D/t/p/9ej7D/t/p/wDX%0ArQooAz/sP+3+n/16PsP+3+n/ANetCigDP+w/7f6f/Xo+w/7f6f8A160KKAM/%0A7D/t/p/9ej7D/t/p/wDXrQooAz/sP+3+n/16PsP+3+n/ANetCigDP+w/7f6f%0A/Xo+w/7f6f8A160KKAKUVjiRDv7jt/8AXrZ+yH+/+n/16rR/6xfqK1aAP//Z" alt="让人头大的if判断"></p>
<p>是不是很奔溃？虽然他是伪代码，并且看起来也很夸张，但在现实中，当我们无数次 review 别人代码时，都会发现类似的场景，那么我们这次就来详细聊聊，有没有什么方法可以让我们避免来写这么多的 if else 呢？</br><br>我们本文提供了 9 种方法来解决掉那些“烦人”的 if else，一起来看吧。</br></p>
<h2 id="1-使用-return"><a href="#1-使用-return" class="headerlink" title="1.使用 return"></a>1.使用 return</h2><p>我们使用<code>return</code>去掉多余的 else，实现代码如下。<br>优化前代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">if</span> (str.equals(<span class="string">"java"</span>)) &#123;</span><br><span class="line">    <span class="comment">// 业务代码 ! true;</span></span><br><span class="line">&#125; <span class="keyword">else</span> &#123;</span><br><span class="line">    <span class="keyword">return</span> ;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>优化后代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">if</span> (str.equals(<span class="string">"java"</span>)) &#123;</span><br><span class="line">    <span class="keyword">return</span> ;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">return</span> <span class="keyword">false</span>;</span><br></pre></td></tr></table></figure>
<p>这样看起来就会舒服很多，虽然相差只有一行代码，但真正的高手和普通人之间的差距就是从这一行行代码中体现出来的。</br><br><strong><em>「勿以善小而不为，勿以恶小而为之」「千里之堤，溃于蚁穴」</em></strong>，说的都是同样的道理。</p>
<h2 id="2-使用-Map"><a href="#2-使用-Map" class="headerlink" title="2.使用 Map"></a>2.使用 Map</h2><p>使用<code>Map</code>数组，把相关的判断信息，定义为元素信息可以直接避免 if else 判断，实现代码如下。</br><br>优化前代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">if</span> (t == <span class="number">1</span>) &#123;</span><br><span class="line">    type = <span class="string">"name"</span>;</span><br><span class="line">&#125; <span class="keyword">else</span> <span class="keyword">if</span> (t == <span class="number">2</span>) &#123;</span><br><span class="line">    type = <span class="string">"id"</span>;</span><br><span class="line">&#125; <span class="keyword">else</span> <span class="keyword">if</span> (t == <span class="number">3</span>) &#123;</span><br><span class="line">    type = <span class="string">"mobile"</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>我们先定义一个数组，把相关判断信息存储起来：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">Map&lt;Integer, String&gt; typeMap = <span class="keyword">new</span> HashMap&lt;&gt;();</span><br><span class="line">typeMap.put(<span class="number">1</span>, <span class="string">"name"</span>);</span><br><span class="line">typeMap.put(<span class="number">2</span>, <span class="string">"id"</span>);</span><br><span class="line">typeMap.put(<span class="number">3</span>, <span class="string">"mobile"</span>);</span><br></pre></td></tr></table></figure>

<p>之前的判断语句可以使用以下一行代码代替了：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">type = typeMap.get(ty);</span><br></pre></td></tr></table></figure>

<h2 id="3-使用三元运算符"><a href="#3-使用三元运算符" class="headerlink" title="3.使用三元运算符"></a>3.使用三元运算符</h2><p><code>三元运算符</code>也叫三元表达式或者三目运算符/表达式，不过代表的都是一个意思，优化代码如下。</br><br>优化前代码：</br></p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">Integer score = <span class="number">81</span>;</span><br><span class="line"><span class="keyword">if</span> (score &gt; <span class="number">80</span>) &#123;</span><br><span class="line">    score = <span class="number">100</span>;</span><br><span class="line">&#125; <span class="keyword">else</span> &#123;</span><br><span class="line">    score = <span class="number">60</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>优化后代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">score = score &gt; <span class="number">80</span> ? <span class="number">100</span> : <span class="number">60</span>;</span><br></pre></td></tr></table></figure>

<h2 id="4-合并条件表达式"><a href="#4-合并条件表达式" class="headerlink" title="4.合并条件表达式"></a>4.合并条件表达式</h2><p>在项目中有些逻辑判断是可以通过梳理和归纳，变更为更简单易懂的逻辑判断代码，如下所示。</br><br>优化前代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">String city = <span class="string">"西安"</span>;</span><br><span class="line">String area = <span class="string">"029"</span>;</span><br><span class="line">String province = <span class="string">"陕西"</span>;</span><br><span class="line"><span class="keyword">if</span> (<span class="string">"西安"</span>.equals(city)) &#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="string">"xi'an"</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">if</span> (<span class="string">"029"</span>.equals(area)) &#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="string">"xi'an"</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">if</span> (<span class="string">"陕西"</span>.equals(province))&#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="string">"xi'an"</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>优化后代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">if</span> (<span class="string">"西安"</span>.equals(city) || <span class="string">"029"</span>.equals(area) || <span class="string">"陕西"</span>.equals(province))&#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="string">"xi'an"</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<h2 id="5-使用枚举"><a href="#5-使用枚举" class="headerlink" title="5.使用枚举"></a>5.使用枚举</h2><p>JDK 1.5 中引入了新的类型——<code>枚举（enum）</code>，我们使用它可以完成很多功能，例如下面这个。</br><br>优化前代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">Integer typeId = <span class="number">0</span>;</span><br><span class="line">String type = <span class="string">"Name"</span>;</span><br><span class="line"><span class="keyword">if</span> (<span class="string">"Name"</span>.equals(type)) &#123;</span><br><span class="line">    typeId = <span class="number">1</span>;</span><br><span class="line">&#125; <span class="keyword">else</span> <span class="keyword">if</span> (<span class="string">"Age"</span>.equals(type)) &#123;</span><br><span class="line">    typeId = <span class="number">2</span>;</span><br><span class="line">&#125; <span class="keyword">else</span> <span class="keyword">if</span> (<span class="string">"Address"</span>.equals(type)) &#123;</span><br><span class="line">    typeId = <span class="number">3</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>优化时，我们先来定义一个枚举：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">public</span> <span class="keyword">enum</span> TypeEnum &#123;</span><br><span class="line">    Name(<span class="number">1</span>), Age(<span class="number">2</span>), Address(<span class="number">3</span>);</span><br><span class="line">    <span class="keyword">public</span> Integer typeId;</span><br><span class="line">    TypeEnum(Integer typeId) &#123;</span><br><span class="line">        <span class="keyword">this</span>.typeId = typeId;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>之前的 if else 判断就可以被如下一行代码所替代了：</br></p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">typeId = TypeEnum.valueOf(<span class="string">"Name"</span>).typeId;</span><br></pre></td></tr></table></figure>

<h2 id="6-使用-Optional"><a href="#6-使用-Optional" class="headerlink" title="6.使用 Optional"></a>6.使用 Optional</h2><p>从 JDK 1.8 开始引入<code>Optional</code>类，在 JDK 9 时对 Optional 类进行了改进，增加了 ifPresentOrElse() 方法，我们可以借助它，来消除 if else 的判断，使用如下。</br><br>优化前代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">String str = <span class="string">"java"</span>;</span><br><span class="line"><span class="keyword">if</span> (str == <span class="keyword">null</span>) &#123;</span><br><span class="line">    System.out.println(<span class="string">"Null"</span>);</span><br><span class="line">&#125; <span class="keyword">else</span> &#123;</span><br><span class="line">    System.out.println(str);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>优化后代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">Optional&lt;String&gt; opt = Optional.of(<span class="string">"java"</span>);</span><br><span class="line">opt.ifPresentOrElse(v -&gt; </span><br><span class="line">	System.out.println(v), () -&gt; System.out.println(<span class="string">"Null"</span>));</span><br></pre></td></tr></table></figure>

<p>小贴士：注意运行版本，必须是 JDK 9+ 才行。</p>
<h2 id="7-梳理优化判断逻辑"><a href="#7-梳理优化判断逻辑" class="headerlink" title="7.梳理优化判断逻辑"></a>7.梳理优化判断逻辑</h2><p>和第 4 点比较类似，我们可以通过分析 if else 的逻辑判断语义，写出更加易懂的代码，例如以下这个嵌套判断的优化。</br><br>优化前代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 年龄大于 18</span></span><br><span class="line"><span class="keyword">if</span> (age &gt; <span class="number">18</span>) &#123;</span><br><span class="line">    <span class="comment">// 工资大于 5000</span></span><br><span class="line">    <span class="keyword">if</span> (salary &gt; <span class="number">5000</span>) &#123;</span><br><span class="line">        <span class="comment">// 是否漂亮</span></span><br><span class="line">        <span class="keyword">if</span> (pretty == <span class="keyword">true</span>) &#123;</span><br><span class="line">            <span class="keyword">return</span> <span class="keyword">true</span>;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">return</span> <span class="keyword">false</span>;</span><br><span class="line">优化后代码：</span><br><span class="line"><span class="keyword">if</span> (age &lt; <span class="number">18</span>) &#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="keyword">false</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">if</span> (salary &lt; <span class="number">5000</span>) &#123;</span><br><span class="line">    <span class="keyword">return</span> <span class="keyword">false</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">return</span> pretty == <span class="keyword">true</span>;</span><br></pre></td></tr></table></figure>

<p>我们需要尽量把表达式中的包含关系改为平行关系，这样代码可读性更高，逻辑更清晰。</p>
<h2 id="8-使用多态"><a href="#8-使用多态" class="headerlink" title="8.使用多态"></a>8.使用多态</h2><p>继承、封装和多态是 OOP（面向对象编程）的重要思想，本文我们使用多态的思想，提供一种去除 if else 方法。</br><br>优化前代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">Integer typeId = <span class="number">0</span>;</span><br><span class="line">String type = <span class="string">"Name"</span>;</span><br><span class="line"><span class="keyword">if</span> (<span class="string">"Name"</span>.equals(type)) &#123;</span><br><span class="line">    typeId = <span class="number">1</span>;</span><br><span class="line">&#125; <span class="keyword">else</span> <span class="keyword">if</span> (<span class="string">"Age"</span>.equals(type)) &#123;</span><br><span class="line">    typeId = <span class="number">2</span>;</span><br><span class="line">&#125; <span class="keyword">else</span> <span class="keyword">if</span> (<span class="string">"Address"</span>.equals(type)) &#123;</span><br><span class="line">    typeId = <span class="number">3</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>使用多态，我们先定义一个接口，在接口中声明一个公共返回 typeId 的方法，在添加三个子类分别实现这三个子类，实现代码如下：</br></p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">public</span> <span class="class"><span class="keyword">interface</span> <span class="title">IType</span> </span>&#123;</span><br><span class="line">    <span class="function"><span class="keyword">public</span> Integer <span class="title">getType</span><span class="params">()</span></span>;</span><br><span class="line">&#125;</span><br><span class="line"> </span><br><span class="line"><span class="keyword">public</span> <span class="class"><span class="keyword">class</span> <span class="title">Name</span> <span class="keyword">implements</span> <span class="title">IType</span> </span>&#123;</span><br><span class="line">    <span class="meta">@Override</span></span><br><span class="line">    <span class="function"><span class="keyword">public</span> Integer <span class="title">getType</span><span class="params">()</span> </span>&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="number">1</span>;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"> </span><br><span class="line"><span class="keyword">public</span> <span class="class"><span class="keyword">class</span> <span class="title">Age</span> <span class="keyword">implements</span> <span class="title">IType</span> </span>&#123;</span><br><span class="line">    <span class="meta">@Override</span></span><br><span class="line">    <span class="function"><span class="keyword">public</span> Integer <span class="title">getType</span><span class="params">()</span> </span>&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="number">2</span>;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"> </span><br><span class="line"><span class="keyword">public</span> <span class="class"><span class="keyword">class</span> <span class="title">Address</span> <span class="keyword">implements</span> <span class="title">IType</span> </span>&#123;</span><br><span class="line">    <span class="meta">@Override</span></span><br><span class="line">    <span class="function"><span class="keyword">public</span> Integer <span class="title">getType</span><span class="params">()</span> </span>&#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="number">3</span>;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>注意：为了简便我们这里把类和接口放到了一个代码块中，在实际开发中应该分别创建一个接口和三个类分别存储。</br><br>此时，我们之前的 if else 判断就可以改为如下代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">IType itype = (IType) Class.forName(<span class="string">"com.example."</span> + type).newInstance();</span><br><span class="line">Integer typeId = itype.getType();</span><br></pre></td></tr></table></figure>

<p>有人可能会说，这样反而让代码更加复杂了，此可谓“杀鸡焉用宰牛刀”的典型范例了。这里作者只是提供一种实现思路和提供了一些简易版的代码，以供开发者在实际开发中，多一种思路和选择，具体用不用需要根据实际情况来定了。灵活变通，举一反三，才是开发的上乘心法。</p>
<h2 id="9-选择性的使用-switch"><a href="#9-选择性的使用-switch" class="headerlink" title="9.选择性的使用 switch"></a>9.选择性的使用 switch</h2><p>很多人都搞不懂 switch 和 if else 的使用场景，但在两者都能使用的情况下，可以尽量使用 switch，因为 switch 在常量分支选择时，switch 性能会比 if else 高。</br><br>if else 判断代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">if</span> (cmd.equals(<span class="string">"add"</span>)) &#123;</span><br><span class="line">    result = n1 + n2;</span><br><span class="line">&#125; <span class="keyword">else</span> <span class="keyword">if</span> (cmd.equals(<span class="string">"subtract"</span>)) &#123;</span><br><span class="line">    result = n1 - n2;</span><br><span class="line">&#125; <span class="keyword">else</span> <span class="keyword">if</span> (cmd.equals(<span class="string">"multiply"</span>)) &#123;</span><br><span class="line">    result = n1 * n2;</span><br><span class="line">&#125; <span class="keyword">else</span> <span class="keyword">if</span> (cmd.equals(<span class="string">"divide"</span>)) &#123;</span><br><span class="line">    result = n1 / n2;</span><br><span class="line">&#125; <span class="keyword">else</span> <span class="keyword">if</span> (cmd.equals(<span class="string">"modulo"</span>)) &#123;</span><br><span class="line">    result = n1 % n2;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>switch 代码：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">switch</span> (cmd) &#123;</span><br><span class="line">    <span class="keyword">case</span> <span class="string">"add"</span>:</span><br><span class="line">        result = n1 + n2;</span><br><span class="line">        <span class="keyword">break</span>;</span><br><span class="line">    <span class="keyword">case</span> <span class="string">"subtract"</span>:</span><br><span class="line">        result = n1 - n2;</span><br><span class="line">        <span class="keyword">break</span>;</span><br><span class="line">    <span class="keyword">case</span> <span class="string">"multiply"</span>:</span><br><span class="line">        result = n1 * n2;</span><br><span class="line">        <span class="keyword">break</span>;</span><br><span class="line">    <span class="keyword">case</span> <span class="string">"divide"</span>:</span><br><span class="line">        result = n1 / n2;</span><br><span class="line">        <span class="keyword">break</span>;</span><br><span class="line">    <span class="keyword">case</span> <span class="string">"modulo"</span>:</span><br><span class="line">        result = n1 % n2;</span><br><span class="line">        <span class="keyword">break</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>在 Java 14 可使用 switch 代码块，实现代码如下：</p>
<figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// java 14</span></span><br><span class="line"><span class="keyword">switch</span> (cmd) &#123;</span><br><span class="line">    <span class="keyword">case</span> <span class="string">"add"</span> -&gt; &#123;</span><br><span class="line">        result = n1 + n2;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">case</span> <span class="string">"subtract"</span> -&gt; &#123;</span><br><span class="line">        result = n1 - n2;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">case</span> <span class="string">"multiply"</span> -&gt; &#123;</span><br><span class="line">        result = n1 * n2;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">case</span> <span class="string">"divide"</span> -&gt; &#123;</span><br><span class="line">        result = n1 / n2;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">case</span> <span class="string">"modulo"</span> -&gt; &#123;</span><br><span class="line">        result = n1 % n2;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>

<p>总结<br>业精于勤荒于嬉，行成于思毁于随。编程是一门手艺，更是一种乐趣，哈佛最受欢迎的幸福课《幸福的方法》一书中写到<strong><em>「让我们能感到快乐和幸福的方法，无非是全身心的投入到自己稍微努力一下就能完成的工作中去！」</em></strong>是啊，太简单的事情通常无法调动起我们的兴趣，</br><br>而太难的工作又会让我们丧失信心，只有那些看似很难但稍微努力一点就能完成的事情，才会给我们带来巨大的快乐。</br><br>我想编程也是一样，普通的方法每个人都会写，然而优雅一点的代码不是所有人都能写得出来，而此文恰恰是提供了写出优雅代码的一些思路，希望可以帮助和启发到你。</p>

        </div>

        
            <section class="post-copyright">
                
                    <p class="copyright-item">
                        <span>作者：</span>
                        <span>Vico</span>
                    </p>
                
                
                    <p class="copyright-item">
                        <span>链接：</span>
                        <span><a href="https://vico-cuiym.github.io/2020/04/08/9%E4%B8%AA%E5%B0%8F%E6%8A%80%E5%B7%A7%E8%AE%A9%E4%BD%A0%E7%9A%84%20if%20else%E7%9C%8B%E8%B5%B7%E6%9D%A5%E6%9B%B4%E4%BC%98%E9%9B%85%EF%BC%81/">https://vico-cuiym.github.io/2020/04/08/9%E4%B8%AA%E5%B0%8F%E6%8A%80%E5%B7%A7%E8%AE%A9%E4%BD%A0%E7%9A%84%20if%20else%E7%9C%8B%E8%B5%B7%E6%9D%A5%E6%9B%B4%E4%BC%98%E9%9B%85%EF%BC%81/</a></span>
                    </p>
                
                
                    <p class="copyright-item">
                        <span>执照：</span>
                        <span>Copyright (c) 2019 <a href="http://creativecommons.org/licenses/by-nc/4.0/" target="_blank" rel="noopener">CC-BY-NC-4.0</a> LICENSE</span>
                    </p>
                
                
                     <p class="copyright-item">
                         <span>脚注：</span>
                         <span>你相信 <strong>命运</strong> 吗?</span>
                     </p>
                

            </section>
        
        <section class="post-tags">
            <div>
                <span>标签:</span>
                <span class="tag">
                    
                    
                        <a href="/tags/java/"># java</a>
                    
                        
                </span>
            </div>
            <div>
                <a href="javascript:window.history.back();">上一页</a>
                <span>· </span>
                <a href="/">首页</a>
            </div>
        </section>
        <section class="post-nav">
            
                <a class="prev" rel="prev" href="/2020/04/08/Untitled/">Untitled</a>
            
            
            <a class="next" rel="next" href="/2020/04/08/JVM%E8%99%9A%E6%8B%9F%E6%9C%BA/">JVM虚拟机</a>
            
        </section>


    </article>
</div>

        </div>
        <footer id="footer" class="footer">
    <div class="copyright">
        <span>© Vico的个人博客 | 博客风格技术支持 <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
    </div>
</footer>

    </div>
</body>
</html>
